#include <iostream>
#include <type_traits>

// 使用 std::enable_if 为算术类型定义 process 函数
template<typename T, typename std::enable_if<std::is_arithmetic<T>::value, T>::type* = nullptr>
void process(T value) {
    // 这个版本的 process 仅适用于算术类型，例如 int, float
    std::cout << "Arithmetic value: " << value << '\n';
}

// 使用 std::enable_if 为非算术类型定义 process 函数
template<typename T, typename std::enable_if<!std::is_arithmetic<T>::value, T>::type* = nullptr>
void process(const T& value) {
    // 这个版本的 process 用于处理非算术类型
    std::cout << "Non-arithmetic type processed." << '\n';
}

int main() {
    process(10);  // 输出 Arithmetic value: 10
    process("Hello, World!");  // 输出 Non-arithmetic type processed.
}